home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-28 | 2.2 KB | 113 lines | [TEXT/MPS ] |
- /*
- File: DebugFlag.cp
-
- Copyright: © 1991-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Part of the AOCE Sample SMSAM Package. Consult the license
- which came with this software for your specific legal rights.
-
- */
-
-
-
- #ifndef __MEMORY__
- #include "Memory.h"
- #endif
-
- #ifndef __RESOURCES__
- #include <Resources.h>
- #endif
-
- #ifndef __DEBUGFLAG__
- #include "DebugFlag.h"
- #endif
-
- #ifndef __FOLDERS__
- #include "Folders.h"
- #endif
-
- extern short gBovineServerPrefsFile; //use common prefs file
- extern short OpenApplicationPreferencesFile(void);
-
- #pragma segment TDebugFlag
-
- TDebugFlag::TDebugFlag(short resourceID, OSType resourceType) {
-
- short savedResFile = CurResFile();
- if ( gBovineServerPrefsFile == 0 )
- gBovineServerPrefsFile = OpenApplicationPreferencesFile();
- fResFileNum = gBovineServerPrefsFile;
- UseResFile(fResFileNum);
-
- fData = Get1Resource (resourceType, resourceID);
-
- if (fData == nil) {
- fData = FAILNewHandleClear(64);
- AddResource (fData, resourceType, resourceID, "\p");
- WriteResource (fData);
- }
-
- HNoPurge(fData);
- UseResFile (savedResFile);
- }
-
- void TDebugFlag::ClearFlag ( short flag )
- {
- SetFlag ( flag, false );
- }
-
- Boolean TDebugFlag::Flag (short flag) const {
- if (fData && (flag >= 0) && (flag <= GetHandleSize(fData))) {
- return ( ((const char*) *fData)[flag] != false);
- }
- return false;
- }
-
- Boolean TDebugFlag::SetFlag (short flag, Boolean newValue) {
-
- if (fData && (flag >= 0) && (flag <= GetHandleSize(fData))) {
- Boolean oldValue = (((char*) *fData)[flag] != false);
- ((char*) *fData)[flag] = (newValue != false);
-
- short savedResFile = CurResFile();
- UseResFile(fResFileNum);
- ChangedResource (fData);
- WriteResource(fData);
-
- UseResFile (savedResFile);
-
- return oldValue;
- } else
- return false;
- }
-
- inline void TDebugFlag::ClearAll(void) {
- if (fData) {
- for (short i = 0; i < GetHandleSize(fData); i++)
- ((char*) *fData)[i] = 0;
-
- short savedResFile = CurResFile();
- UseResFile(fResFileNum);
-
- ChangedResource (fData);
- WriteResource(fData);
-
- UseResFile (savedResFile);
- }
- }
-
- TDebugFlag::~TDebugFlag() {
- if (fData) {
- short savedResFile = CurResFile();
- UseResFile(fResFileNum);
-
- ChangedResource (fData);
- WriteResource(fData);
-
- UseResFile (savedResFile);
-
- ReleaseResource(fData);
- }
- }
-